import {
	computed,
	onMounted,
	onUnmounted,
	reactive,
	ref,
	nextTick,
	toRaw,
	watch,
} from "vue";

import * as util from '@/amtf/utils'
import useApi from "@/api/增查api.js"

export default function(cfg = {}) {
	const api = useApi({ key: "订单" })
	const 单项组 = reactive([])
	// const 分组统计单项组 = reactive([])
	const a = reactive({
		总计: {},
		// 分组统计单项组: [],
	})
	// console.log('单项组: ', 单项组);

	async function 统计() {
		// 予单项集()
		const res =await api.查()
		// console.log('统计 res: ', res);
		a.总计 = 统计指定单项组(res)
		// util.数组重予(单项组, res)
		予分组统计单项组(res)
	}

	// function 予总计() {
	// 	console.log('总计 ing');
	// 	const 收款 = util.累加(单项组, "收款")
	// 	const 台球费 = util.累加(单项组, "台球费")
	// 	let res = { 收款, 台球费 }
	// 	a.总计 = res
	// }

	function 予分组统计单项组(arr) {
		// console.log('分组统计单项组 ing');
		const 时间组 = Array.from(new Set(arr.map(item => {
			const 时间编号 = util.fmt时间到月(item.开台时间)
			return 时间编号
		})))

		let res = []
		时间组.forEach(时间编号 => {
			const arr2 = arr.filter(item => {
				const 时间编号一 = util.fmt时间到月(item.开台时间)
				return 时间编号一 === 时间编号
			})
			const 统计结果 = 统计指定单项组(arr2)
			// console.log('统计结果: ', 统计结果);
			统计结果.时间编号 = 时间编号
			res.push(统计结果)
		})

		res.sort((a, b) => {
			// 将年月字符串转换为日期进行比较
			const dateA = new Date(a.时间编号)
			const dateB = new Date(b.时间编号)
			return dateB - dateA // 降序排列，最近的月份在前
		})
		// a.分组统计单项组 = res
		util.数组重予(单项组, res)
	}

	function 统计指定单项组(arr) {
		const 收款 = util.累加(arr, "收款")
		const 台球费 = util.累加(arr, "台球费")
		let res = { 收款, 台球费, arr }
		return res
	}

	// watch(单项组, () => {
	// 		console.log("单项组 变化了");
	// 	}
	// )

	return {
		a,
		统计,
		单项组,
	};

}